import java.util.*;

public class text {
    /*给你一个字符串 s ，它只包含三种字符 a, b 和 c 。
    请你返回 a，b 和 c 都 至少 出现过一次的子字符串数目。*/
    //滑动窗口
    public static int check(String s) {
        char[] ad=s.toCharArray();
        int count=0,left=0;
        int[] nums=new int[3];
        for(int i=0;i<ad.length;i++){
            nums[ad[i]-'a']++;
            while(nums[0]!=0&&nums[1]!=0&&nums[2]!=0){
                nums[ad[left]-'a']--;
                left++;
            }
            count+=left;
        }
        return count;
    }
    //暴力解法时间超时
    /*public static int check(String s) {
        char[] ch=s.toCharArray();
        int count=0;
        for(int i=0;i<ch.length;i++){
            for(int j=i+1;j<ch.length;j++){
                String da=s.substring(i,j);//记录遍历字串
                if(da.contains("a")&&da.contains("b")&&da.contains("c"))
                    count++;
            }
        }
        return count;
    }*/
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s=sc.nextLine();
        int count=check(s);
        System.out.println(count);
    }
}
